<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <p class='demo'> hello JavaScript</p>
<script>
// 1. 使用解构赋值，实现两个变量的值的交换
let a = 100;
let b = 20;
console.log(`a:${a}, b:${b}`);
[b, a] = [a, b];
console.log(`交换值后 a:${a}, b:${b}`);


// 2. 使用set实现数组去重
var arr = [100,20,50,5,99,9,100];
function noRepeat(arr) {
  const set = new Set();
  for(item of arr) {
    set.add(item);
  }
  return Array.from(set);
}
console.log(noRepeat(arr));


/*  
3. 使用箭头函数改写下列代码
  arr.forEach(function (v, i) {
    console.log(v, i)
  }) 
*/
arr.forEach((v, i) => {
  console.log(v, i)
})




// 4. 检测是否是数字，包括整数，小数
function testDigit(s) {
  let regular = /\d+(\.\d+)?/;
  if(regular.test(s)) {
    console.log(s + "包括整数或者小数");
  } else {
    console.log(s + "不包括整数或者小数");
  }
}
testDigit("ghf.sad.5as");


// 5. 检测是否是本地电话，如010 - 12345678, 0418 - 12345678

function testTel(s) {
  let regular = /\d{3,4}-\d{8}/;
  if(regular.test(s)) {
    console.log(s + "是本地电话");
  } else {
    console.log(s + "不是本地电话");
  }
}
testTel("1122-55636666");



// 6. 将用户输入的网址全部转化成我们的官网。如www.baidu.com=> www.lagou.com
var input = prompt("请输入网址!");
// 1.想着替换的话直接全部替换成www.lagou.com不就好了
// var output = input.replace(input,"www.lagou.com");
// alert(output);
// 2.用正则表达式直接替换中间的值
let regular = /(\w{3}\.)(\w+)(\.com)/;
var output = input.replace(regular,function(match, $1, $2) {
  // 将匹配到中间字符串置换成lagou
  return "www."+ $2 +".com";
});
alert(output);



// 7. 实现trim(str)方法，过滤字符串首位空白
function trim(str) {
  let regular = /^(\s)+|(\s)+$/;
  // 将首位的空白替换成空字符串
  return str.replace(regular, '');
}
console.log(trim("   hello world！   "));


//  8. 获取 < p class='demo' > hello JavaScript</p > 内部文案
// 获取dom元素？
// console.log(document.getElementsByClassName("demo")[0].innerText);
function getText(str) {
  let regular = /(>)(.+)(<\/)/;
  // return regular.exec(str)[2];
  return str.match(regular)[2];
}
console.log(getText("< p class='demo' > hello JavaScript</p >"));

// 9. 将div#demo.demo转化成 < div id = "demo" class="demo" ></div >
function exchange(str) {
  let regular = /(\w+)|#|(\w+)|\.|(\w+)/g;
  let arr = str.match(regular);
  // 取出匹配到的值，拼接成最终字符串
  return `<${arr[0]} id="${arr[2]}" class="${arr[4]}"></div>`
}
console.log(exchange("div#demo.demo"));


// 10. 检测是否是2到4位汉字
function testChina(str) {
  let regular = /^[\u4e00-\u9fa5]{2,4}$/g;
  // 判断是否输入是否为2~4的汉字
  if(regular.test(str)){
    return `"${str}" 是2到4位的汉字`;
  } else {
    return `"${str}" 不是2到4位的汉字`;
  }
}
console.log(testChina("早上好呀"));
console.log(testChina("aa早上"));



// 11. 检测昵称是否是有汉字字母数字下划线组成，6 - 8位
function testName(str) {
  let regular = /^[\u4e00-\u9fa5\w]{6,8}$/;
  if(regular.test(str)) {
    return `"${str}" 是6 ~ 8位,由汉字字母数字下划线组成`;
  } else {
    return `"${str}" 不是6 ~ 8位,由汉字字母数字下划线组成`;
  }
}
console.log(testName("早上好呀123456-"));
console.log(testName("aa早上111"));
</script>
</body>
</html>